/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.database.bean;

import com.database.dao.PerfilDao;
import com.database.dao.impl.PerfilDaoImplement;
import com.database.model.Perfil;
import java.util.ArrayList;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;

/**
 *
 * @author diego
 */
@ManagedBean(name="perfilBean")
@SessionScoped
public class PerfilBean {

    private Perfil perfil;
    private List<Perfil> perfiles;
     private List<SelectItem> perfilesItems;//Lista de Usuarios para el selectOneMenu

    
    public PerfilBean() {
    
    }
    
    public void prepararPerfil(Integer id){
        PerfilDao perfilDao = new PerfilDaoImplement();
        perfil = perfilDao.buscarPorId(id);
    }
    
    public void actualizarPerfil(){
       
        PerfilDao perfilDao = new PerfilDaoImplement();
        perfilDao.actualizar(perfil);
        FacesContext context = FacesContext.getCurrentInstance();  
        context.addMessage(null, new FacesMessage("Datos actualizados correctamente!!"));  
        perfil =  new Perfil();
    }
    
      public void prepararEliminar(Integer id){
        PerfilDao perfilDao = new PerfilDaoImplement();
        perfil = perfilDao.buscarPorId(id);
    }
      
      
    
    public void prepararInsertar(){
        perfil = new Perfil();
    }

    public Perfil getPerfil() {
        
        if(perfil==null){
            perfil=new Perfil();
        }
        return perfil;
    }

    public void setPerfil(Perfil perfil) {
        this.perfil = perfil;
    }

    public List<Perfil> getPerfiles() {
        PerfilDao perfilDao = new PerfilDaoImplement(); 
        perfiles= perfilDao.buscarTodos();
        return perfiles;
    }

     public void insertar(){
         
         PerfilDao areaDao = new PerfilDaoImplement();
         areaDao.insertar(perfil);
         perfil = new Perfil();
    }
     
      public void eliminar(){
         PerfilDao perfilDao = new PerfilDaoImplement();
         perfilDao.eliminar(perfil); 
         perfil = new Perfil();
     }
      
      
     /*Funcion utilizada para retornar las opciones de Menu 
      De seleccion de Perfil*/
      public List<SelectItem> getPerfilesItems(){
          
        if (perfilesItems == null){
            perfilesItems = new ArrayList<SelectItem>();
            
            PerfilDao perfilDao = new PerfilDaoImplement();
            List<Perfil> listaPerfiles = perfilDao.buscarTodos();
            for (Perfil u : listaPerfiles ){
                perfilesItems.add(new SelectItem(
                            u,
                            u.getNombre())); // value, label, the value to choose and label to appear fo the user
            }
        }
        return perfilesItems;
    }
    
    
}
